﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;

using Bricks.Component.Utils;
using Bricks.Site.Models;
using Bricks.Business.Models.ScheduleManagement;


namespace Bricks.Business.Service
{
    public interface IStageScheduleService
    {
        IQueryable<StageSchedule> StageSchedules { get; }

        #region 主界面加载
        List<StageScheduleView> GetStageScheduleList(Guid projectID, string contractType, Guid contractID, string year, string month);

        List<StageScheduleDetailsView> GetStageScheduleDetailList(Guid projectID, string contractType, Guid contractID, string year, string month, Guid stageScheduleID);

        List<StageScheduleView> GetStageScheduleListForPreview(Guid projectID, string contractType, List<Guid> lstContractID, string year, string month);

        List<StageScheduleDetailsView> GetStageScheduleDetailListForPreview(Guid projectID, string contractType, List<Guid> lstContractID, string year, string month, string statisticalCycle);
        #endregion

        #region 单据操作
        StageScheduleView GetStageScheduleByID(Guid id);

        List<StageScheduleDetailsView> GetStageScheduleDetailListForFlow(Guid projectID, string contractType, Guid contractID, string year, string month, Guid stageScheduleID);

        void SaveStageSchedule(StageScheduleView stageScheduleView, List<StageScheduleDetailsView> saveList, bool isUpdateDetails = true);

        OperationResult Delete(Guid id);
        #endregion

        #region 旬报表
        List<StageReportView> GetStageReportView(string year, string month, string stage, string contractType);
        #endregion
    }
}